;
(function($) {
    $.fn.load_tabs = function(options) {

            var defaults = {
                main_tabs_id: "main_tabs_content",
                menu_tabs_id: "menu_tabs_item"
            };
            var obj = $(this);

            var obj_a = obj.find("a");
            var opts = defaults;
            if (options)
                opts = jQuery.extend(defaults, options);

            var url = obj.attr("url");
            var id = obj.attr("flag");

            var text = obj_a.text();

            if ($("#tab_" + id).length > 0) {

                $("#tab_" + id).choose_tab();
                return false;
            }

            var menu_html = "<li class='active' id='tab_#id#' flag='#id#' url='#url#'><a href='javascript:; '><i class='fa fa-refresh tab_refresh'></i>#title# <i class='fa fa-close tab_close'></a></li>";

            $("#menu_tabs_item li").removeClass("active");
            $("#menu_tabs_item li i").addClass("hide");


            var tab_html = $('<div class="tab-pane active" id="content_tab_' + id + '"></div>');

            $("#" + opts.main_tabs_id).html("");
            $("#" + opts.main_tabs_id).html(tab_html);
            menu_html = menu_html.replace(/#id#/g, id).replace(/#title#/g, text).replace(/#url#/g, url);
            menu_html = $(menu_html);

            $("#" + opts.menu_tabs_id).append(menu_html);
            tab_html.load(url, function() {
                $(".tab_close", menu_html).on("click", function() {
                    $(this).close_tab();

                });
                $(".tab_refresh", menu_html).on("click", function() {
                    var refresh = $(this).parent("a").parent("li");
                    $(this).refresh_tab();

                });


                menu_html.on("click", function() {
                    $(this).choose_tab();
                })
            });

        },
        $.fn.close_tab = function() {

            var defaults = {
                main_tabs_id: "main_tabs_content",
                menu_tabs_id: "menu_tabs_item"
            };
            var opts = defaults;
            var obj = $(this);
            var parent = obj.parent("a").parent("li");
            var prev_item = parent.prev("li");
            var id = parent.attr("flag");

            var content_id = "content_" + id;

            $("#tab_" + id).remove();

            $("#content_tab_" + id).remove();
            prev_item.choose_tab();
        },
        $.fn.choose_tab = function() {
            var defaults = {
                main_tabs_id: "main_tabs_content",
                menu_tabs_id: "menu_tabs_item"
            };
            var opts = defaults;
            var obj = $(this);

            var obj_a = obj.find("a");
            var url = obj.attr("url");
            var id = obj.attr("flag");
            var text = obj_a.text();
            $("#menu_tabs_item li").removeClass("active");
            $("#menu_tabs_item li i").addClass("hide");
            obj.addClass("active");

            if ($("#tab_" + id).length > 0) {
                $(".fa", obj).removeClass("hide");
                if ($("#content_tab_" + id).length <= 0) {

                    var tab_html = $('<div class="tab-pane active" id="content_tab_' + id + '"></div>');
                    $("#" + opts.main_tabs_id).html("");
                    $("#" + opts.main_tabs_id).html(tab_html);
                    tab_html.load(url);
                } else {
                    $("#content_tab_" + id).addClass("active");
                }

            } else {

                var tab_html = $('<div class="tab-pane active" id="content_tab_' + id + '"></div>');

                $("#" + opts.main_tabs_id).html("");
                $("#" + opts.main_tabs_id).html(tab_html);
                if (url) {
                    tab_html.load(url, function() {
                        $(".fa", obj).removeClass("hide");
                    });
                } else {
                    $(".fa", obj).removeClass("hide");
                }

            }


        },
        $.fn.refresh_tab = function() {
            var defaults = {
                main_tabs_id: "main_tabs_content",
                menu_tabs_id: "menu_tabs_item"
            };
            var opts = defaults;
            var obj = $(this);
            var parent = obj.parent("a").parent("li");
            var tab_html = $(".tab-pane", $("#main_tabs_content"));
            var url = $(parent).attr("url");
            tab_html.html("");
            tab_html.load(url);
        }

})(jQuery);